import service from '../utils/request'

// ==================== 题目管理 API (管理员) ====================

/**
 * 创建题目
 * @param {Object} data 题目数据
 * @param {string} data.title - 题目标题
 * @param {string} data.description - 题目描述
 * @param {string} data.content - 题目内容
 * @param {string} data.answer - 标准答案
 * @param {string} data.explanation - 答案解析
 * @param {string} data.difficulty - 难度
 * @param {Array} data.tags - 标签数组
 * @param {number} data.courseId - 所属课程ID
 * @param {number} data.points - 分值
 */
export function createProblem(data) {
  return service.post('/api/admin/problems', data)
}

/**
 * 更新题目
 * @param {number} problemId 题目ID
 * @param {Object} data 题目数据
 */
export function updateProblem(problemId, data) {
  return service.put(`/api/admin/problems/${problemId}`, data)
}

/**
 * 删除题目
 * @param {number} problemId 题目ID
 */
export function deleteProblem(problemId) {
  return service.delete(`/api/admin/problems/${problemId}`)
}

/**
 * 获取题目详情（用于编辑）
 * @param {number} problemId 题目ID
 */
export function getProblemForEdit(problemId) {
  return service.get(`/api/admin/problems/${problemId}`)
}

/**
 * 获取题目列表（管理员视图）
 * @param {Object} params 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.size - 每页数量
 * @param {string} params.difficulty - 难度筛选
 * @param {string} params.tag - 标签筛选
 * @param {string} params.keyword - 关键字搜索
 * @param {string} params.status - 状态筛选
 */
export function getProblemsForAdmin(params) {
  return service.get('/api/admin/problems', { params })
}

/**
 * 批量删除题目
 * @param {Array} problemIds 题目ID数组
 */
export function batchDeleteProblems(problemIds) {
  return service.post('/api/admin/problems/batch-delete', { problemIds })
}

/**
 * 更新题目状态
 * @param {number} problemId 题目ID
 * @param {string} status 状态：draft/published/archived
 */
export function updateProblemStatus(problemId, status) {
  return service.put(`/api/admin/problems/${problemId}/status`, { status })
}

/**
 * 获取题目统计（管理员）
 */
export function getProblemAdminStats() {
  return service.get('/api/admin/problems/stats')
}

/**
 * 导入题目（批量）
 * @param {FormData} formData 包含Excel文件的表单数据
 */
export function importProblems(formData) {
  return service.post('/api/admin/problems/import', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 导出题目
 * @param {Object} params 导出参数
 */
export function exportProblems(params) {
  return service.get('/api/admin/problems/export', { 
    params,
    responseType: 'blob'
  })
}

/**
 * 获取题目提交统计
 * @param {number} problemId 题目ID
 */
export function getProblemSubmissionStats(problemId) {
  return service.get(`/api/admin/problems/${problemId}/submission-stats`)
}

/**
 * 创建题目标签
 * @param {Object} data 标签数据
 * @param {string} data.name - 标签名称
 * @param {string} data.color - 标签颜色
 * @param {string} data.description - 标签描述
 */
export function createProblemTag(data) {
  return service.post('/api/admin/problem-tags', data)
}

/**
 * 更新题目标签
 * @param {number} tagId 标签ID
 * @param {Object} data 标签数据
 */
export function updateProblemTag(tagId, data) {
  return service.put(`/api/admin/problem-tags/${tagId}`, data)
}

/**
 * 删除题目标签
 * @param {number} tagId 标签ID
 */
export function deleteProblemTag(tagId) {
  return service.delete(`/api/admin/problem-tags/${tagId}`)
}

/**
 * 获取所有题目标签（管理员）
 */
export function getAllProblemTags() {
  return service.get('/api/admin/problem-tags')
}




